go/types.Pointer.base (field)
40 uses
go/types (current package)
builtins.go#L880: x.typ = NewSlice(ptr.base)
builtins.go#L1122: if a, _ := p.base.Underlying().(*Array); a != nil {
call.go#L758: x.typ = x.typ.(*Pointer).base
call.go#L932: typ = &Pointer{base: typ}
conversions.go#L164: if IdenticalIgnoreTags(V.base.Underlying(), T.base.Underlying()) && !isTypeParam(V.base) && !isTypeParam(T.base) {
expr.go#L146: x.typ = &Pointer{base: x.typ}
expr.go#L1146: x.typ = &Pointer{base: x.typ}
expr.go#L1155: if base != nil && !Identical(p.base, base) {
expr.go#L1159: base = p.base
index.go#L77: if typ, _ := typ.base.Underlying().(*Array); typ != nil {
index.go#L128: if t, _ := t.base.Underlying().(*Array); t != nil {
index.go#L300: if u, _ := u.base.Underlying().(*Array); u != nil {
infer.go#L588: return w.isParameterized(t.base)
infer.go#L744: w.typ(t.base)
instantiate.go#L237: if p, _ := Vu.(*Pointer); p != nil && !isValid(p.base.Underlying()) {
lookup.go#L556: return p != nil && IsInterface(p.base)
lookup.go#L562: if p, _ := T.Underlying().(*Pointer); isTypeParam(p.base) {
lookup.go#L621: if p.base == nil {
lookup.go#L627: return p.base, true
lookup.go#L636: if _, ok := p.base.Underlying().(*Struct); ok {
lookup.go#L637: return p.base
pointer.go#L12: base Type // element type
pointer.go#L16: func NewPointer(elem Type) *Pointer { return &Pointer{base: elem} }
pointer.go#L19: func (p *Pointer) Elem() Type { return p.base }
predicates.go#L311: return c.identical(x.base, y.base, p)
signature.go#L364: t = p.base
signature.go#L392: typ = ptr.base
subst.go#L143: base := subst.typ(t.base)
subst.go#L144: if base != t.base {
subst.go#L145: return &Pointer{base: base}
typestring.go#L189: w.typ(t.base)
typexpr.go#L329: typ.base = Typ[Invalid] // avoid nil base in invalid recursive type declaration
typexpr.go#L330: typ.base = check.varType(e.X)
typexpr.go#L335: if !isValid(typ.base) {
unify.go#L627: return u.nify(x.base, y.base, emode, p)